June 13, 1996
The VideoToolbox web site is http://rajsky.psych.nyu.edu/VideoToolbox/
Most of the documentation is there.
Denis Pelli
Professor of Psychology and Neural Science
Department of Psychology
New York University
6 Washington Place
New York, NY 10003
denis@psych.nyu.edu
New version (June 12, 1996) of the VideoToolbox available for downloading.
Now compatible with Metrowerks CodeWarrior 9 and Symantec 8.1.
The VideoToolbox is a collection of two hundred C subroutines and several
demo and utility programs that I and others have written to do visual psychophysics
with Macintosh computers. It is fully compatible with 680x0 and PowerPC
Macs and with Metrowerks CodeWarrior and Symantec C compilers. It's free
and may not be sold without permission. It should be useful to anyone who
wants to present accurately specified visual stimuli or use the Mac for
psychometric experiments. The text file "Video synch" discusses
all the ways of synchronizing programs to video displays and the many pitfalls
to avoid. The TimeVideo application checks out the timing of all video devices
in anticipation of their use in critical real-time applications, e.g. movies
or lookup table animation. "Video bugs" reports all known bugs
uncovered by TimeVideo's testing of 56 video cards and drivers. Low-level
routines control video timing and lookup tables, display real-time movies,
and implement the luminance-control algorithms suggested by Pelli and Zhang
(1991). In particular, CopyWindows (or CopyBitsQuickly) faithfully copies
between on-screen and off-screen windows (or bit/pixmaps), WindowToEPS saves
an image to disk as encapsulated PostScript, for later printing or incorporation
into a document, and SetEntriesQuickly and GDSetEntries load the screen's
color lookup table, all without any of QuickDraw's color translations. NoisePdfFill.c
quickly generates visual noise images whose pixels are samples from a specified
probability density function. High-level routines help analyze psychophysical
experiments (e.g. maximum-likelihood fitting and graphing of psychometric
data). Assign.c is a runtime C interpreter for C assignment statements,
which is useful for controlling experiments and sharing calibration data.
This collection has been continually updated since 1991. More that one hundred
colleagues subscribe to the email distribution (see below), and have indicated
that they are using the software in their labs. Documentation is in the
source files themselves. Many of the routines are Mac-specific, but some
very useful routines, e.g. the luminance-control, statistics, maximum-likelihood
fitting algorithms, and the runtime interpreter are written in Standard
C and will work on any computer. Those wishing to acknowledge use of the
VideoToolbox software might cite:
Pelli, D. G. and Zhang, L. (1991) Accurate control of contrast on microcomputer
displays. Vision Research, 31, 1337-1350. Reprints are available.
AVAILABILITY:
The VideoToolbox software is updated several times a year. You can download
the latest version from the web
site, or from Info-Mac
(search for "video-toolbox"). For notification of new releases,
just send me your name and email
address. There are currently 186 subscribers to the notification list.
The VideoToolbox is distributed as a Stuffit archive. You'll need Stuffit
Expander to unpack it. (Available from Info-Mac,
search for "stuffit-expander".) They have versions for MacOS and
Windows.
BUGS & SUGGESTIONS:
It's unlikely that you'll find any bugs, but if you do, please send me email
so we can fix 'em. Suggestions and code donations (i.e. C routines to be
included in the VideoToolbox, possibly in modified form, with full attribution)
are warmly appreciated. Also many people have contributed useful paragraphs,
which appear in the VideoToolbox notes, with attribution, about specific
technical issues that they identified and perhaps solved.
Good luck!
denis
denis@psych.nyu.edu
AUTHORS:
Adobe (ATMInterface.c and ATMInterface.h)
Apple (IsCmdPeriod.c,MoveMouse.c,TrapAvailable.c, Zoom.c)
Kevin Bell (PatchExitToShell in Timer.c)
Philipp Biermann ("Multisync Sense Pins.note")
David Brainard (AfterDark.c,12 in Assign.c,1 in GDOpenWindow.c, GetTimeDateString.c,
PeekTimer in Timer.c)
EJ Chichilniski (SetFileInfo.c)
Raynald Comtois (SetEntriesQuickly.c)
Frans Cornelissen (VideoToolbox folder icon)
Steve Coy (PatchExitToShell in Timer.c)
Bart Farell (several routines in SetOnePixel.c and SetPixelsQuickly.c)
Bill Haake (SetEntriesQuickly.c)
C.K. Haun, Apple Computer (KillEveryoneButMe.c)
Bill Hofmann (PatchExitToShell in Timer.c)
Mike Kahl (CopyQuickDrawGlobals.c, kbhit.c)
Joseph Laffey (GetVersionString.c)
Peter Lennie (SetEntriesQuickly.c)
J.N. Little & jmb (ReadMATLABFile.c)
Jamie R. McCarthy (IsCmdPeriod.c)
Izumi Ozhawa (CVNetConvert in the Utilities folder)
Denis Pelli (most of the routines)
Dave Radcliffe (FlushCacheRange.c)
Evan Relkin (kbhit.c)
Mike Schechter (PixMapToPICT.c)
Dan Sears (IsCmdPeriod.c,MoveMouse.c)
SPLAsh Resources (HideMenuBar.c, SetMouse.c)
Preeti Verghese (GetVoltage.c)
Detailed attribution appears in each file. Please advise of any errors or
omissions.